'use strict'

class mplogin {

  constructor () {
    //param默认就是/:id，若要改变路由，则可以设置此属性，比如此处应设置为/:code
    this.param = '/:code'
  }

  //以下方法，若不需要，要去掉，避免无意义的路由。

  //对于该路由不能进行登录校验(即不能给该路由添加登录校验中间件verify)，因为这是在获取校验码
  async get (c) {
      //auth_url是开发者服务器向微信服务器发送登录凭证校验的网址
      let auth_url=`https://api.weixin.qq.com/sns/jscode2session?appid=${c.service.wxkey.appid}&secret=${c.service.wxkey.secret}&js_code=${c.param.code}&grant_type=authorization_code`;
      let ret=await c.service.httpcli.get(auth_url)  //开发者服务器端作为客户端向微信服务器端发送请求
                          .then(res=>{  //res是微信服务器端给开发者服务器端返回的结果，包括openid等
                              return res.json();
                          })

      c.send(c.service.tok.make(ret));
  }
}

module.exports = mplogin
